<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>pg_collation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REV="MADE"
HREF="mailto:pgsql-docs@postgresql.org"><LINK
REL="HOME"
TITLE="PostgreSQL 9.1.2 Documentation"
HREF="index.html"><LINK
REL="UP"
TITLE="System Catalogs"
HREF="catalogs.html"><LINK
REL="PREVIOUS"
TITLE="pg_constraint"
HREF="catalog-pg-constraint.html"><LINK
REL="NEXT"
TITLE="pg_conversion"
HREF="catalog-pg-conversion.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=ISO-8859-1"><META
NAME="creation"
CONTENT="2011-12-01T22:07:59"></HEAD
><BODY
CLASS="SECT1"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="5"
ALIGN="center"
VALIGN="bottom"
><A
HREF="index.html"
>PostgreSQL 9.1.2 Documentation</A
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
TITLE="pg_constraint"
HREF="catalog-pg-constraint.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="catalogs.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="60%"
ALIGN="center"
VALIGN="bottom"
>Chapter 45. System Catalogs</TD
><TD
WIDTH="20%"
ALIGN="right"
VALIGN="top"
><A
TITLE="pg_conversion"
HREF="catalog-pg-conversion.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CATALOG-PG-COLLATION"
>45.13. <TT
CLASS="STRUCTNAME"
>pg_collation</TT
></A
></H1
><P
>   The catalog <TT
CLASS="STRUCTNAME"
>pg_collation</TT
> describes the
   available collations, which are essentially mappings from an SQL
   name to operating system locale categories.
   See <A
HREF="collation.html"
>Section 22.2</A
> for more information.
  </P
><DIV
CLASS="TABLE"
><A
NAME="AEN85987"
></A
><P
><B
>Table 45-13. <TT
CLASS="STRUCTNAME"
>pg_collation</TT
> Columns</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><COL><THEAD
><TR
><TH
>Name</TH
><TH
>Type</TH
><TH
>References</TH
><TH
>Description</TH
></TR
></THEAD
><TBODY
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>collname</TT
></TD
><TD
><TT
CLASS="TYPE"
>name</TT
></TD
><TD
>&nbsp;</TD
><TD
>Collation name (unique per namespace and encoding)</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>collnamespace</TT
></TD
><TD
><TT
CLASS="TYPE"
>oid</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-namespace.html"
><TT
CLASS="STRUCTNAME"
>pg_namespace</TT
></A
>.oid</TT
></TD
><TD
>       The OID of the namespace that contains this collation
      </TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>collowner</TT
></TD
><TD
><TT
CLASS="TYPE"
>oid</TT
></TD
><TD
><TT
CLASS="LITERAL"
><A
HREF="catalog-pg-authid.html"
><TT
CLASS="STRUCTNAME"
>pg_authid</TT
></A
>.oid</TT
></TD
><TD
>Owner of the collation</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>collencoding</TT
></TD
><TD
><TT
CLASS="TYPE"
>int4</TT
></TD
><TD
>&nbsp;</TD
><TD
>Encoding in which the collation is applicable, or -1 if it
       works for any encoding</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>collcollate</TT
></TD
><TD
><TT
CLASS="TYPE"
>name</TT
></TD
><TD
>&nbsp;</TD
><TD
><TT
CLASS="SYMBOL"
>LC_COLLATE</TT
> for this collation object</TD
></TR
><TR
><TD
><TT
CLASS="STRUCTFIELD"
>collctype</TT
></TD
><TD
><TT
CLASS="TYPE"
>name</TT
></TD
><TD
>&nbsp;</TD
><TD
><TT
CLASS="SYMBOL"
>LC_CTYPE</TT
> for this collation object</TD
></TR
></TBODY
></TABLE
></DIV
><P
>   Note that the unique key on this catalog is (<TT
CLASS="STRUCTFIELD"
>collname</TT
>,
   <TT
CLASS="STRUCTFIELD"
>collencoding</TT
>, <TT
CLASS="STRUCTFIELD"
>collnamespace</TT
>) not just
   (<TT
CLASS="STRUCTFIELD"
>collname</TT
>, <TT
CLASS="STRUCTFIELD"
>collnamespace</TT
>).
   <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> generally ignores all
   collations that do not have <TT
CLASS="STRUCTFIELD"
>collencoding</TT
> equal to
   either the current database's encoding or -1, and creation of new entries
   with the same name as an entry with <TT
CLASS="STRUCTFIELD"
>collencoding</TT
> = -1
   is forbidden.  Therefore it is sufficient to use a qualified SQL name
   (<TT
CLASS="REPLACEABLE"
><I
>schema</I
></TT
>.<TT
CLASS="REPLACEABLE"
><I
>name</I
></TT
>) to identify a collation,
   even though this is not unique according to the catalog definition.
   The reason for defining the catalog this way is that
   <SPAN
CLASS="APPLICATION"
>initdb</SPAN
> fills it in at cluster initialization time with
   entries for all locales available on the system, so it must be able to
   hold entries for all encodings that might ever be used in the cluster.
  </P
><P
>   In the <TT
CLASS="LITERAL"
>template0</TT
> database, it could be useful to create
   collations whose encoding does not match the database encoding,
   since they could match the encodings of databases later cloned from
   <TT
CLASS="LITERAL"
>template0</TT
>.  This would currently have to be done manually.
  </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="catalog-pg-constraint.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="catalog-pg-conversion.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><TT
CLASS="STRUCTNAME"
>pg_constraint</TT
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="catalogs.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><TT
CLASS="STRUCTNAME"
>pg_conversion</TT
></TD
></TR
></TABLE
></DIV
></BODY
></HTML
>